Many modern software products have a presentation layer that includes a series of forms, which provide information regarding objects that are stored in a database. Such forms typically enable a user to view and edit the information regarding the objects. For example, data about a company's computers may be stored in a database. A form may be created to show information about those computers, such as the name, manufacturer, date of purchase, value, location, primary user, etc. of each of the computers.
In an extensible model-based system, a software vendor may provide an out-of-the-box solution, which describes the normal properties and relationships of a given class of objects (e.g., a computer) and a form that corresponds to the class of objects in the model on which the system is based. Users can then extend the model to add additional relationships and properties. The form is usually modified (i.e., customized) to show the additional relationships and properties, so that a user can see and edit them. For example, a user can modify the form by adding controls, rearranging controls, re-labeling the controls, changing colors, changing fonts, adding validation logic, etc. In another example, the customer may modify the form by removing controls that are provided with respect to the out-of-the-box solution.
Conventional techniques for generating a customized form often result in a new form being created, typically starting out as a copy of the original form, even when the customized form includes only a slight modification with respect to the original form. Once a customer has departed from the original form and created a new customized form, the original software vendor traditionally is no longer able to update the customized form in a future version of the software on which the form is based. Accordingly, the customer often chooses between continuing to use the customized version of the form “as is” without the software vendor's updates, modifying the customized version of the form to account for the updates, or reverting all customizations and using the new version of the form from the software vendor.
Some example software programs that implement such conventional techniques for generating a customized form include Remedy™ developed by BMC Software, Inc., HEAT® developed by FrontRange Solutions, Inc., and Microsoft Dynamics® CRM developed by Microsoft Corporation. Form designers/editors, such as Microsoft® Visual Studio®, Microsoft® Expression Blend™, and Microsoft® Office InfoPath™, may also be used to generate customized forms.
Customizing forms to match a customer's business processes typically involves substantial effort. Moreover, substantial time is usually spent on reconfiguring a form to include its corresponding customizations each time the software is upgraded. This slows the adoption rate of new versions of the software and can cause customer frustration. Furthermore, the customizations are often initially applied in a test environment and then manually applied in a production environment. Such an approach may be time consuming, frustrating, and/or error prone.